Micron Document
🎖️GitЯра🎖️


Displaying Raw • Download

.specify/extensions/git/scripts/bash/initialize-repo.sh fix/qr-error-correction (7b45f84f) Text, 1.82 KB

T8b949e#!/usr/bin/env bash
T8b949e# Git extension: initialize-repo.sh
T8b949e# Initialize a Git repository with an initial commit.
T8b949e# Customizable — replace this script to add .gitignore templates,
T8b949e# default branch config, git-flow, LFS, signing, etc.

Tffa657set -e

Te6edf3SCRIPT_DIRTff7b72=Ta5d6ff"Tff7b72$(Te6edf3CDPATHTff7b72=Ta5d6ff"" Tffa657cd Ta5d6ff"Tff7b72$(dirname Ta5d6ff"Tffd700${Te6edf3BASH_SOURCETb4b4b4[0]Tffd700}Ta5d6ff"Tff7b72)Ta5d6ff" Tff7b72&& Tffa657pwdTff7b72)Ta5d6ff"

T8b949e# Find project root
_find_project_rootTff7b72(Tff7b72) Tff7b72{
Tffa657local Te6edf3dirTff7b72=Ta5d6ff"Te6edf3$1Ta5d6ff"
Tff7b72while Tff7b72[ Ta5d6ff"Te6edf3$dirTa5d6ff" !Tff7b72= Ta5d6ff"/" Tff7b72]Tb4b4b4; Tff7b72do
Tff7b72if Tff7b72[ -d Ta5d6ff"Te6edf3$dirTa5d6ff/.specifyTa5d6ff" Tff7b72] Tff7b72|| Tff7b72[ -d Ta5d6ff"Te6edf3$dirTa5d6ff/.gitTa5d6ff" Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Te6edf3$dirTa5d6ff"
Tff7b72return T79c0ff0
Tff7b72fi
Te6edf3dirTff7b72=Ta5d6ff"Tff7b72$(dirname Ta5d6ff"Te6edf3$dirTa5d6ff"Tff7b72)Ta5d6ff"
Tff7b72done
Tff7b72return T79c0ff1
Tff7b72}

Te6edf3REPO_ROOTTff7b72=Tff7b72$(_find_project_root Ta5d6ff"Te6edf3$SCRIPT_DIRTa5d6ff"Tff7b72) Tff7b72|| Te6edf3REPO_ROOTTff7b72=Ta5d6ff"Tff7b72$(Tffa657pwdTff7b72)Ta5d6ff"
Tffa657cd Ta5d6ff"Te6edf3$REPO_ROOTTa5d6ff"

T8b949e# Read commit message from extension config, fall back to default
Te6edf3COMMIT_MSGTff7b72=Ta5d6ff"[Spec Kit] Initial commit"
Te6edf3_config_fileTff7b72=Ta5d6ff"Te6edf3$REPO_ROOTTa5d6ff/.specify/extensions/git/git-config.ymlTa5d6ff"
Tff7b72if Tff7b72[ -f Ta5d6ff"Te6edf3$_config_fileTa5d6ff" Tff7b72]Tb4b4b4; Tff7b72then
Te6edf3_msgTff7b72=Tff7b72$(grep Ta5d6ff'^init_commit_message:' Ta5d6ff"Te6edf3$_config_fileTa5d6ff" T79c0ff2>/dev/null Tb4b4b4| sed Ta5d6ff's/^init_commit_message:[[:space:]]*//' Tb4b4b4| sed Ta5d6ff's/^["'Tffea00\'Ta5d6ff']//' Tb4b4b4| sed Ta5d6ff's/["'Tffea00\'Ta5d6ff']*$//'Tff7b72)
Tff7b72if Tff7b72[ -n Ta5d6ff"Te6edf3$_msgTa5d6ff" Tff7b72]Tb4b4b4; Tff7b72then
Te6edf3COMMIT_MSGTff7b72=Ta5d6ff"Te6edf3$_msgTa5d6ff"
Tff7b72fi
Tff7b72fi

T8b949e# Check if git is available
Tff7b72if ! Tffa657command -v git >/dev/null T79c0ff2>Tb4b4b4&T79c0ff1Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"[specify] Warning: Git not found; skipped repository initialization" >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff0
Tff7b72fi

T8b949e# Check if already a git repo
Tff7b72if git rev-parse --is-inside-work-tree >/dev/null T79c0ff2>Tb4b4b4&T79c0ff1Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"[specify] Git repository already initialized; skipping" >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff0
Tff7b72fi

T8b949e# Initialize
Te6edf3_git_outTff7b72=Tff7b72$(git init -q T79c0ff2>Tb4b4b4&T79c0ff1Tff7b72) Tff7b72|| Tff7b72{ Tffa657echo Ta5d6ff"Ta5d6ff[specify] Error: git init failed: Te6edf3$_git_outTa5d6ff" >Tb4b4b4&T79c0ff2Tb4b4b4; Tffa657exit T79c0ff1Tb4b4b4; Tff7b72}
Te6edf3_git_outTff7b72=Tff7b72$(git add . T79c0ff2>Tb4b4b4&T79c0ff1Tff7b72) Tff7b72|| Tff7b72{ Tffa657echo Ta5d6ff"Ta5d6ff[specify] Error: git add failed: Te6edf3$_git_outTa5d6ff" >Tb4b4b4&T79c0ff2Tb4b4b4; Tffa657exit T79c0ff1Tb4b4b4; Tff7b72}
Te6edf3_git_outTff7b72=Tff7b72$(git commit --allow-empty -q -m Ta5d6ff"Te6edf3$COMMIT_MSGTa5d6ff" T79c0ff2>Tb4b4b4&T79c0ff1Tff7b72) Tff7b72|| Tff7b72{ Tffa657echo Ta5d6ff"Ta5d6ff[specify] Error: git commit failed: Te6edf3$_git_outTa5d6ff" >Tb4b4b4&T79c0ff2Tb4b4b4; Tffa657exit T79c0ff1Tb4b4b4; Tff7b72}

Tffa657echo Ta5d6ff"✓ Git repository initialized" >Tb4b4b4&T79c0ff2

Served by rngit 1.5.1 - Generated in 0.05s